package com.jing.yao.modules.user.service;

import com.jing.yao.bean.KeyValue;
import com.jing.yao.component.service.YaoBaseService;
import com.jing.yao.modules.user.controller.param.UserParam;
import com.jing.yao.modules.user.dao.entity.UserEntity;

import java.util.List;

/**
 * 用户service
 *
 * @author lirui
 * @since 2020-06-13
 */
public interface UserService extends YaoBaseService<UserParam, UserEntity> {

    /**
     * 根据用户名查询用户
     *
     * @param username
     * @return
     */
    UserEntity findByUsername(String username);

    /**
     * @Description 查询用户下拉框
     * @author wangxiaoliang
     * @date 2020-07-15 10:53
     */
    List<KeyValue> getUserList();

    /**
     * 给用户分配角色
     *
     * @param username
     * @param roles
     */
    void userRole(String username, List<String> roles);

    /**
     * 重置密码
     *
     * @param id
     */
    void resetPwd(Long id);

    /**
     * 修改密码
     *
     * @param username
     * @param password
     * @param oldPassword
     */
    void updatePwd(String username, String password, String oldPassword);

    /**
     * 修改用户状态
     *
     * @param userName
     * @param status
     * @param updateBy
     */
    void updateUserStatus(String userName, Integer status, String updateBy);
}
